package com.alameda.commonpent.commonback.api;

import com.alameda.base.bo.CommonBackBO;

import java.util.Map;

/**
 * 通用后端组件 业务逻辑层
 *
 * @author Lv
 * @date 2024/2/19
 */
public interface CommonBackTemplate<T> {
    /**
     * 通用获取详情
     *
     * @param commonBackBO 通用后端业务对象
     * @return
     */
    Map<String, Object> get(CommonBackBO commonBackBO);

    /**
     * 通用逻辑删除
     *
     * @param commonBackBO 通用后端业务对象
     * @return
     */
    Boolean remove(CommonBackBO commonBackBO);

    /**
     * 获取类名称
     *
     * @param tableName 表名称
     * @return
     */
    String getClassName(String tableName);

    /**
     * 获取目标对象反射字节码
     *
     * @param pojoPath  路径
     * @param className 类名称
     * @return
     */
    Class<?> getTargetObjectClass(String pojoPath, String className);

    /**
     * 物理删除
     *
     * @param deleteSql 删除sql
     * @return
     */
    Integer executeDelete(String deleteSql);
}
